// 1.配置axios的基地址
axios.defaults.baseURL = 'https://hmajax.itheima.net'
// 测试基地址
// axios({
//     url: '/api/area'
// })
//     .then(res => {
//         console.log(res);
//     })

// 拦截器
// 请求拦截
axios.interceptors.request.use((config) => {
    // 对config进行包装(添加请求头的token)
    const token = localStorage.getItem('token')
    // 有token才携带, 没有就放行
    if (token) {
        config.headers.Authorization = token
    }
    return config
}, (err) => {
    // 返回失败的promise对象
    return Promise.reject(err)
})
// 响应拦截 
axios.interceptors.response.use(({ data }) => {
    // res是axios返回的结果, 多包装了一层, 没有用, 剥离掉
    // res.data才是接口返回的内容
    // 容易出现忽略的问题: 这里已经解构了一层, 之间所有接口的数据都将少一层
    return data
}, (err) => {
    if (err.response.status === 401) {
        // token失效
        localStorage.removeItem('token')
        showToast('登录失效,请重新登录')
        // 延迟1秒跳转登录页面
        setTimeout(() => {
            location.href = './login.html'
        }, 1000)
    }
    return Promise.reject(err)
})

// 2.开发吐司函数: 封装一个公共的吐司提示框
function showToast(message) {
    // 1.获取页面的弹层模板
    const toast = document.querySelector('.toast')
    // 2. 通过模板实例化一个弹层
    const registerToast = new bootstrap.Toast(toast)
    // 3. 修改弹层内的提示文字
    toast.querySelector('.toast-body').innerText = message
    // 4. 展示弹层
    registerToast.show()
}

// 3.封装一个校验是否登录的函数
function checkLogin() {
    // 取出存储的token 如果没有不能登录
    const token = localStorage.getItem('token')
    if (!token) {
        // 提示用户 跳回登陆页面
        showToast('当前暂未登录')
        setTimeout(() => {
            location.href = './login.html'
        }, 1000)
    }
}